﻿using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Xml.Linq;
using Biblioteca.Utils;
using SERIX.Util;

namespace SERIX
{
    public partial class DescricoesOpcoesManut : Seguranca
    {

        string _operacao;
        string _idt_desc;
        string _tpo_vinc = "";
        string _filtro = "";

        protected void Page_Load(object sender, EventArgs e)
        {
            base.OnLoad(e);
            _operacao = Request["OP"];            
            if (!String.IsNullOrEmpty(Request["idt_desc"]))
            {
                _idt_desc = Server.UrlDecode(Criptografia.Descriptografar(Request["idt_desc"]));
            }
            if (!String.IsNullOrEmpty(Request["tpo_vinc"]))
            {
                _tpo_vinc = Server.UrlDecode(Criptografia.Descriptografar(Request["tpo_vinc"]));
                _filtro = "?tpo_vinc=" + Server.UrlEncode(Request["tpo_vinc"]);
            }
            if (!Page.IsPostBack)
            {
                BiblioSERIX.PreencherDdl(ref ddlUnidadeMedida, CTiposMedidas.ObterTodos(), "DSC_TPO_MED", "IDT_TPO_MED");
                BiblioSERIX.PreencherDdl(ref ddlUnidadedeMedidas2, CTiposMedidas.ObterTodos(), "DSC_TPO_MED", "IDT_TPO_MED");
                BiblioSERIX.PreencherDdl(ref ddlUnidadesdeMedidas3, CTiposMedidas.ObterTodos(), "DSC_TPO_MED", "IDT_TPO_MED");
                switch (_operacao)
                {
                    case "R":
                        {
                            switch (_tpo_vinc)
                            {
                                case "C":
                                    {
                                        lblTitulo.Text = "Detalhes da Cultura";
                                        break;
                                    }
                                case "E":
                                    {
                                        lblTitulo.Text = "Detalhes da Especie Animal";
                                        break;
                                    }
                                case "B":
                                    {
                                        lblTitulo.Text = "Detalhes do Bem de Consumo";
                                    break;
                                    }
                                case "M":
                                    {
                                        lblTitulo.Text = "Detalhes de Maquinas e Equipamentos";
                                        break;
                                    }
                                case "R":
                                    {
                                        lblTitulo.Text = "Detalhes de Recursos Hídricos"; 
                                        break;
                                    }
                                case "N":
                                    {
                                        lblTitulo.Text = "Detalhes de Benfeitorias";
                                        break;
                                    }
                                case "P":
                                    {
                                        lblTitulo.Text = "Detalhes de Tipo de Pastagem";
                                        break;
                                    }
                                default:
                                    break;
                            }
                            Cancelar_Button.Visible = false;
                            CDescricoesOpcoes descricoesopcoes = CDescricoesOpcoes.PesquisaporCodigo(_idt_desc, UsuAut.Login);
                            //ddlTPO_VINC.SelectedValue = descricoesopcoes.Tpo_vinc;
                            CarregaDados(descricoesopcoes);
                            DesabilitaControles();
                            break;
                        }
                    case "U":
                        {
                            switch (_tpo_vinc)
                            {
                                case "C":
                                    {
                                        lblTitulo.Text = "Cadastro de Culturas";
                                        break;
                                    }
                                case "E":
                                    {
                                        lblTitulo.Text = "Cadastro de Especies Animal";
                                        break;
                                    }
                                case "B":
                                    {
                                        lblTitulo.Text = "Cadastro de Bens de Consumo";
                                        break;
                                    }
                                case "M":
                                    {
                                        lblTitulo.Text = "Cadastro de Maquinas e Equipamentos";
                                        break;
                                    }
                                case "R":
                                    {
                                        lblTitulo.Text = "Cadastro de Recursos Hídricos";
                                        break;
                                    }
                                case "N":
                                    {
                                        lblTitulo.Text = "Cadastro de Benfeitorias";
                                        break;
                                    }
                                case "P":
                                    {
                                        lblTitulo.Text = "Cadastro de Tipos de Pastagem";
                                        break;
                                    }
                                default:
                                    break;
                            }
                            CDescricoesOpcoes descricoesopcoes = CDescricoesOpcoes.PesquisaporCodigo(_idt_desc, UsuAut.Login);
                            //ddlTPO_VINC.SelectedValue = descricoesopcoes.Tpo_vinc;
                            CarregaDados(descricoesopcoes);
                            break;

                        }
                    case "I":
                        {
                            switch (_tpo_vinc)
                            {
                                case "C":
                                    {
                                        lblTitulo.Text = "Cadastro de Culturas";
                                        break;
                                    }
                                case "E":
                                    {
                                        lblTitulo.Text = "Cadastro de Especies Animal";
                                        break;
                                    }
                                case "B":
                                    {
                                        lblTitulo.Text = "Cadastro de Bens de Consumo";
                                        break;
                                    }
                                case "M":
                                    {
                                        lblTitulo.Text = "Cadastro de Maquinas e Equipamentos";
                                        break;
                                    }
                                case "R":
                                    {
                                        lblTitulo.Text = "Cadastro de Recursos Hídricos";
                                        break;
                                    }
                                case "N":
                                    {
                                        lblTitulo.Text = "Cadastro de Benfeitorias";
                                        break;
                                    }
                                case "P":
                                    {
                                        lblTitulo.Text = "Cadastro de Pastagens";
                                        break;
                                    }
                                default:
                                    break;
                            }
                            break;
                        }
                    case "D":
                        {
                            switch (_tpo_vinc)
                            {
                                case "C":
                                    {
                                        lblTitulo.Text = "Exclusão de Cultura";
                                        break;
                                    }
                                case "E":
                                    {
                                        lblTitulo.Text = "Exclusão de Especie Animal";
                                        break;
                                    }
                                case "B":
                                    {
                                        lblTitulo.Text = "Exclusão de Bem de Consumo";
                                        break;
                                    }
                                case "M":
                                    {
                                        lblTitulo.Text = "Exclusão de Maquinas e Equipamentos";
                                        break;
                                    }
                                case "R":
                                    {
                                        lblTitulo.Text = "Exclusão de Recursos Hídricos";
                                        break;
                                    }
                                case "N":
                                    {
                                        lblTitulo.Text = "Exclusão de Benfeitorias";
                                        break;
                                    }
                                case "P":
                                    {
                                        lblTitulo.Text = "Exclusão de Pastagem";
                                        break;
                                    }
                                default:
                                    break;
                            }
                            CDescricoesOpcoes descricoesopcoes = CDescricoesOpcoes.PesquisaporCodigo(_idt_desc, UsuAut.Login);
                            //ddlTPO_VINC.SelectedValue = descricoesopcoes.Tpo_vinc;
                            CarregaDados(descricoesopcoes);
                            DesabilitaControles();
                            break;
                        }
                    default: break;
                }
            }
            tbDESCRICAO.Focus();
        }

        protected void CarregaDados(CDescricoesOpcoes obj)
        {
            tbDESCRICAO.Text = obj.Descricao.ToUpper(); ;
            ddlUnidadeMedida.SelectedValue = obj.idt_tpo_med;
            ddlUnidadedeMedidas2.SelectedValue = obj.idt_tpo_med_;
            ddlUnidadesdeMedidas3.SelectedValue = obj.idt_tpo_med__;
        }
        protected void DesabilitaControles()
        {
            BiblioSERIX.DesabilitaControle(tbDESCRICAO);
            BiblioSERIX.DesabilitaControle(ddlUnidadeMedida);
            BiblioSERIX.DesabilitaControle(ddlUnidadedeMedidas2);
            BiblioSERIX.DesabilitaControle(ddlUnidadesdeMedidas3);
        }

        protected void Ok_Button_Click(object sender, EventArgs e)
        {
            try
            {

                CDescricoesOpcoes descricoesopcoes;
                if (String.IsNullOrEmpty(_idt_desc) && _operacao[0].Equals('I'))
                {
                    _idt_desc = CDescricoesOpcoes.ObterNovoIdt(UsuAut.Login).ToString();
                }
                descricoesopcoes = new CDescricoesOpcoes(_idt_desc, _tpo_vinc, Biblio.TirarAcentos(tbDESCRICAO.Text.ToUpper()),ddlUnidadeMedida.SelectedValue, ddlUnidadedeMedidas2.SelectedValue, ddlUnidadesdeMedidas3.SelectedValue);
                switch (_operacao)
                {
                    case "I":
                        {
                            descricoesopcoes.Inserir(UsuAut.Login);
                            break;
                        }
                    case "U":
                        {
                            descricoesopcoes.Alterar(UsuAut.Login);
                            break;
                        }
                    case "D":
                        {
                            descricoesopcoes.Excluir(UsuAut.Login);
                            break;
                        }
                    default: break;
                }
                Response.Redirect("DescricoesOpcoes.aspx" + _filtro);
            }
            catch (Exception ex)
            {
                lblErro.Text = "*Erro: " + ex.Message;
                lblErro.Visible = true;
            }
        }

        protected void Cancelar_Button_Click(object sender, EventArgs e)
        {
            Response.Redirect("DescricoesOpcoes.aspx" + _filtro);
        }
    }
}
